package com.sinosoft.msf.base.supplier.dao.base;

import com.alibaba.fastjson.JSONObject;
import com.sinosoft.msf.base.supplier.pojo.*;
import com.sinosoft.msf.base.supplier.pojo.entity.*;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Set;

@Mapper
public interface SCompanyMapper {
    List<JSONObject> selectCompanyList(JSONObject obj);

    List<SCompanyInfo> selectCompanys(@Param("paramData") CompanyQueryReqPojo.ParamData paramData);
    List<CompanyMarkQueryResp> selectCompanyMark(@Param("paramData") CompanyQueryReqPojo.ParamData paramData);
    List<CompanyMarkHisListResp> selectMarkHisList(String companyId);
    List<String> selectMarkFile(@Param("fileType") String fileType, @Param("markId") String markId);
    SCompanyMark selectMarkInfo(@Param("markId") String markId);
    Integer updateCompanyMarkInfo(SCompanyInfo sCompanyInfo);
    Integer updateCompanyModifyMarkInfo(@Param("companyId") String companyId);
    List<JSONObject> queryByNameAndPhone(ValiComInfoPojo infoPojo);

    Integer updateCompanyModifyId(@Param("modifyId") String modifyId, @Param("projectId") String projectId, @Param("companyId") String companyId);
    SCompanyInfoModifying selectCompanyModifyInfoById(String modifyId);

    List<SNoticeRecord> selectNoticeRecordList(CompanyQueryReqPojo.ParamData paramData);
    List<SNoticeRecord> selectStopNoticeRecord(@Param("date") String date);
    Integer updateNoticeRecord(@Param("companyId") String companyId, @Param("noticeType") String noticeType);
    CompanyMarkInfoPojo selectCompanyMarkInfo(@Param("companyId") String companyId, @Param("markId") String markId);
    SCompanyMark selectLastMark(@Param("companyId") String companyId);
    List<NoticeIpDetailResp> selectNoticeIpCompany(@Param("id") String id);
    List<NoticePersonDetailResp> selectNoticePersonCompany(@Param("id") String id);
    List<NoticeProjectList> selectNoticeProjectList(@Param("companyId") String companyId);
    List<String> selectSameCompanyByIp(@Param("ip") String ip);
    String selectCompanyName(@Param("ids") List<String> ids);
    String selectSameIpCompany(@Param("ids") List<String> ids);
    List<String> selectSameCompanyPerson(NoticePersonDetailResp query);
    String selectCompanyNameCheck(@Param("ids") List<String> ids);
    List<SProjectCompany> selectPriceIp();
    List<SCompanyInfo> selectCompanyPojoList();
    List<Contract> queryContractList(@Param("companyId") String companyId, @Param("modId") String modId);
    List<Map<String, Object>> selectSameHistory(String noticeType);
    Integer updateSameHistory(@Param("extra") String extra, @Param("num") Integer num);
    NoticeIpDetailResp selectIpDetail(@Param("ipPrefix") String ipPrefix, @Param("companyId") String companyId);
    //更新营业执照止期
    void updateLicenseEndDate(@Param("companyId") String companyId);
}
